#!/usr/bin/env node

/**
 * SDAT Method CLI - npx 直接执行包装器
 * 此文件确保通过 GitHub 上的 npx 运行时正确执行
 */

const { execSync } = require('child_process');
const path = require('path');
const fs = require('fs');

// 检查是否在 npx 临时目录中运行
const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');

// 如果通过 npx 运行，我们需要以不同方式处理
if (isNpxExecution) {
  const args = process.argv.slice(2);

  // 对所有命令使用安装程序
  const sdatScriptPath = path.join(__dirname, 'installer', 'bin', 'sdat.js');

  if (!fs.existsSync(sdatScriptPath)) {
    console.error('错误: 无法在', sdatScriptPath, '找到 sdat.js');
    console.error('当前目录:', __dirname);
    process.exit(1);
  }

  try {
    execSync(`node "${sdatScriptPath}" ${args.join(' ')}`, {
      stdio: 'inherit',
      cwd: path.dirname(__dirname)
    });
  } catch (error) {
    process.exit(error.status || 1);
  }
} else {
  // 本地执行 - 对所有命令使用安装程序
  require('./installer/bin/sdat.js');
}